Purgeable memory objects are memory objects that can be purged so that physical memory associated with the memory objects can be freed for other purposes. Purgeable memory objects are used in some operating systems (e.g., Apple, Inc.'s Mac OS) for caching data that can be easily reconstructed, such as graphics or media files retrieved from a hard disk. Purgeable memory objects can be set to a volatile state. In a volatile state, the object can be emptied even when its contents are being used by another application, i.e., touched or “dirty.” Volatile pages are often stored with other cache pages on a page queue which can include active and inactive queues having First In, First Out (FIFO) behavior. When a page of a memory object reaches the head of the FIFO page queue the memory object is destroyed.
The FIFO page queue is appropriate for purgeable memory objects having usage dates that are in the past. For other kinds of memory objects, like media streams, the FIFO behavior is not appropriate, since the usage dates for those memory objects are in the future.